This invention pertains generally to document formatting, and more specifically to a method of formatting a document printed from a software program in a selected format and at a selected resolution.
Networks today utilize a variety of different operating systems, both on the server side and on the client side. A few common examples of such operating systems are the Windows family of operating systems, Novell, Unix, Linux, as well as various mainframe systems. The many operating systems have different capabilities and interface differently with printer drivers. Consequently, certain user functionality that is available on one system may not be available on other systems.
Generally, a user is able to submit document to a printer for printing in a variety of different formats. Most software applications permit a user to format a document so that it prints in booklet format (2-up) or as any multiple n of pages on a single printed page (n-up) where n is an integer greater than 1. In some circumstances, however, operating systems, software programs and printer drivers are unable to interact properly in order to create an n-up printing format. In such cases, printer drivers generally format the print job and send it to a print controller. As such, when a print job is sent from a print driver to a print controller, it is formatted so that the print controller need not perform any further processing in order to produce a correctly formatted printed document.
Generally, in order to send preformatted pages to a print controller, a print driver must perform all required formatting whenever a particular software program is unable to format the pages as desired. For example, if the desired format is booklet form, the print driver must shrink the output of the software package so that each page received from the software program fits on one half of a booklet format page. The shrinking of the pages alters the image of a particular page and results in data loss. However, some printers have a native ability to generate formatted documents after receiving unformatted data. Using the same booklet example, a print job would be formatted into booklet form after being sent to the printer and prior to printing.
It is preferable to allow a printer, rather than a print driver, to perform formatting because it decreases both network traffic and potential compatibility issues. Because each driver is designed to interface with a particular operating system, drivers tend to be operating system specific. In order to build cross-platform formatting capability into printer drivers to operate a single printer, formatting capability must be built into each operating system specific printer driver. However, while each driver is specific to the particular operating system with which it interfaces, each printer will work with a variety of printer drivers, allowing for cross-platform functionality.
It would therefore be preferable if a print driver were capable of first determining printer capability, and then using that information to determine where document formatting will occur.